package recomendadorWeb;

import java.util.Hashtable;
import testTemp.Temperamento;

public class TablaGeneroTemperamentoUsuario {
	
	private Hashtable<String, PorcentajeTemperamento[]> tabla;

	public TablaGeneroTemperamentoUsuario(){
		tabla=new Hashtable<String, PorcentajeTemperamento[]>();
		meteGenero(Generos.Accion,			0.1878,	0.0743,	0.0000,	0.0000);
		meteGenero(Generos.Animacion,		0.0000,	0.0000,	0.0000,	0.0000);
		meteGenero(Generos.Aventuras,		0.2086,	0.0000,	0.0831,	0.0000);
		meteGenero(Generos.Comedia,			0.0000,	0.09,	0.1184,	0.0000);
		meteGenero(Generos.Documental,		0.0000,	0.0609,	0.0000,	0.0810);
		meteGenero(Generos.Drama,			0.0000,	0.1520,	0.1309,	0.0000);
		meteGenero(Generos.Fantasia,		0.12,	0.0000,	0.0982,	0.0000);
		meteGenero(Generos.Romantica,		0.0000,	0.0972,	0.1870,	0.0000);
		meteGenero(Generos.Terror,			0.1156,	0.0617,	0.0000,	0.0000);
		meteGenero(Generos.Thriller,		0.0000,	0.1446,	0.0000,	0.0887);
		meteGenero(Generos.CienciaFiccion,	0.0000,	0.0000,	0.0618,	0.2159);
	}
	
	private void meteGenero(Generos genero,double artesano, double guardian, double idealista, double racional){
		PorcentajeTemperamento[] v=new PorcentajeTemperamento[4];	
		v[0]=new PorcentajeTemperamento(Temperamento.Artesano,artesano);
		v[1]=new PorcentajeTemperamento(Temperamento.Idealista,idealista);
		v[2]=new PorcentajeTemperamento(Temperamento.Guardian,guardian);
		v[3]=new PorcentajeTemperamento(Temperamento.Racional,racional);
		tabla.put(genero.toString(), v);
	}
	
	public double getValorTabla(Generos genero, Temperamento temperamento){
		double valor=getPorcentajeTemperamentoTabla((PorcentajeTemperamento[]) tabla.get(genero.toString()), temperamento);
		return valor;
	}

	private double getPorcentajeTemperamentoTabla(PorcentajeTemperamento[] temps, Temperamento temperamento) {
		double valor=0;
		switch (temperamento){
		case Artesano: valor=temps[0].getPorcentaje();break;
		case Idealista: valor=temps[1].getPorcentaje();break;
		case Guardian: valor=temps[2].getPorcentaje();break;
		case Racional:valor=temps[3].getPorcentaje();break;
		}
		return valor;
	}
}